Game Controller That Converts Between Wireless Operation And Wired Operation

ABSTRACT

A game controller operates in both a wired mode and a wireless mode, and is able to switch between these two modes without permanent disruption to an ongoing game. The game controller is configured to detect a condition that suggests switching from the wireless mode of operation to a wired mode of operation, convey the indication to a host game system, and transition from the wireless mode of operation to the wired mode of operation.

RELATED APPLICATIONS

This U.S. Non-provisional Application for Letters Patent is acontinuation of and claims the benefit of priority to U.S. patentapplication Ser. No. 10/769,431, filed on Jan. 30, 2004, the disclosureof which is incorporated by reference herein.

TECHNICAL FIELD

This invention relates to peripherals for controlling video games, andmore particularly, to game controllers that can be used for both wiredand wireless play.

BACKGROUND

Game controllers facilitate user interaction with video games. Gamecontrollers come in many configurations depending upon the desiredgaming environment for which the controllers are to be used. There aremulti-purpose controllers with one or more multi-function actuators forcontrolling a wide range of games and specialty controllers designed forspecific genre of games, such as steering wheels for racing games,weapons for shooting games, and navigation sticks for aviation games.

Game controllers are designed to connect with the game hosting systemusing either wireless or wired technologies. For example, wiredcontrollers for PC-based games typically connect to the PC via a serialport, such as a USB port, and wired controllers for console-based gamingsystems might use a proprietary interface. Wireless controllers aredesigned using such technologies as infrared, RF, or Bluetooth.

SUMMARY

A game controller operates in both a wired mode and a wireless mode, andis able to switch between these two modes without permanent disruptionto an ongoing game. During a transition from one mode to another, a hostgaming system detects when the controller is physically disconnected(for wired mode to wireless mode) or connected (for wireless mode towired mode). Upon detection, the host gaming system stores the game dataand user information and establishes a new communication link with thecontroller. The host gaming system subsequently reassociates the gamedata and user information with the game controller as it beginsoperating in the new mode. This allows the player to continue game playwithout interruption.

BRIEF DESCRIPTION OF THE CONTENTS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 illustrates a gaming system with a game console and a controllerthat can operate in both wireless and wired modes.

FIG. 2 is a block diagram of the gaming system.

FIG. 3 is a block diagram of the controller.

FIG. 4 is a flow diagram showing a process for converting use of thecontroller from wireless operation to wired operation.

FIG. 5 is a flow diagram showing a process for converting use of thecontroller from wired operation to wireless operation.

DETAILED DESCRIPTION

The following disclosure describes a game controller that can beoperated in both a wired mode and a wireless mode. The game controllercan switch easily between the two modes without disrupting continuedplay of the game. For discussion purposes, the game controller isdescribed in the context of a multi-purpose game controller for aconsole-based gaming system. However, the game controller may beconfigured in many different ways and with a wide variety offunctionality, including specialty controllers.

Gaming System

FIG. 1 shows an exemplary console-based gaming system 100. It includes agame console 102 and up to four controllers, as represented by twocontrollers 104(1) and 104(2). Each controller 104 is coupled to thegame console 102 via a wire or wireless interface and utilizes asuitable data protocol, such as USB (Universal Serial Bus). Onecontroller 104(2) is illustrated as operating in two different modes: awired mode and a wireless mode. In the wired mode, the controller 104(2)is connected to the game console 102 via a cable 106. The controllerderives power from the game console through the cable 106. In thewireless mode, the controller 104(2) is connected to the game console102 via a wireless link 108. The wireless link may be implemented usingany one of many different technologies including, for example, infrared,Bluetooth, or RF technologies. In the wireless mode, the controller104(2) draws from its own power source, such as a battery. The cable 106may optionally be detached from the controller to offer more freedom ofmovement.

The player can switch between wireless operation and wired operation byconnecting the serial cable 106 to, or disconnecting it from, the gameconsole 102. Mode-switching may occur during game play withoutinterrupting the game. For example, if a game controller is in wirelessmode and the battery runs low during game play, the player may switch towired mode by plugging the cable 106 into the game console 102 and gameplay continues without interruption. While in wired mode, the gamecontroller is powered by the game console and the controller battery isrecharged.

The game console 102 is equipped with a portable media drive 110 and anoptional internal hard disk drive. The portable media drive supportsvarious forms of portable storage media as represented by an opticalstorage disc 112. Examples of suitable portable storage media includeDVD, CD-ROM, game discs, game cartridges, and so forth.

The game console 102 has four slots 114 on its front face to support upto four controllers, although the number and arrangement of slots may bemodified. In the wired mode, the game controllers 104 are assigned tothe physical slots 114 for controlling various characters/features ofthe video game. In wireless mode, however, the game controllers104(1)-104(4) are assigned to virtual slots.

In one implementation, virtual slots are assigned, without prompting theuser, in sequential order to reduce complexity for the user. Thus, thefirst virtual slot is assigned to the first wireless game controllerintroduced to the host game console 102; the second virtual slot isassigned to the second wireless game controller, and so on.Alternatively, the user can choose a virtual slot via a user interfacepresented on the display. Actuation of a pre-designated button on theconsole invokes a slot assignment pane from which the player can selectan available virtual slot.

Control buttons 116 are positioned on the front face of the game console102. Control buttons 116 include, for example, a power button thatswitches power to the game console and an eject button that alternatelyopens and closes a tray of the portable media drive 110 to allowinsertion and extraction of the storage disc 112.

The game console 102 connects to a television or other display (notshown) via A/V interfacing cables 120. A power cable 122 provides powerto the game console. The game console 102 may be further equipped withinternal or externally added network capabilities, as represented by thecable or modem connector 124 to facilitate access to a network, such asa local area network (LAN) or the Internet.

Each controller 104 may be equipped with any of a wide variety of userinteraction mechanisms. As illustrated in FIG. 1, each controller 104 isequipped with two thumbsticks 132(1) and 132(2), a directional or D-pad134, surface buttons 136, and two triggers 138. These mechanisms aremerely representative, and other known gaming mechanisms (e.g., shoulderbuttons) may be substituted for or added to those shown in FIG. 1.

A memory unit (MU) 140 may be inserted into the controller 104 toprovide additional and portable storage (as illustrated) oralternatively into the game console 102. Portable memory units enableusers to store game parameters and transport them for play on otherconsoles. In the illustrated implementation, each controller isconfigured to accommodate two memory units 140, although more or lessthan two units may be employed in other implementations. In otherimplementations, the game console may support one or more memory unitsper player.

FIG. 2 shows functional components of the gaming system 100 in moredetail. The game console 102 has a central processing unit (CPU) 200 anda memory controller 202 that facilitates processor access to varioustypes of memory, including a flash ROM (Read Only Memory) 204, a RAM(Random Access Memory) 206, a hard disk drive 208, and the portablemedia drive 106. The CPU 200 is equipped with a level 1 cache 210 and alevel 2 cache 212 to temporarily store data and hence reduce the numberof memory access cycles, thereby improving processing speed andthroughput.

The CPU 200, memory controller 202, and various memory devices areinterconnected via one or more buses, including serial and parallelbuses, a memory bus, a peripheral bus, and a processor or local bususing any of a variety of bus architectures. By way of example, sucharchitectures can include an Industry Standard Architecture (ISA) bus, aMicro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, aVideo Electronics Standards Association (VESA) local bus, and aPeripheral Component Interconnect (PCI) bus.

As one suitable implementation, the CPU 200, memory controller 202, ROM204, and RAM 206 are integrated onto a common module 214. ROM 204 isconfigured as a flash ROM that is connected to the memory controller 202via a PCI (Peripheral Component Interconnect) bus and a ROM bus (neitherof which are shown). RAM 206 is configured as multiple DDR SDRAM (DoubleData Rate Synchronous Dynamic RAM) modules that are independentlycontrolled by the memory controller 202 via separate buses (not shown).The hard disk drive 208 and portable media drive 106 are connected tothe memory controller via the PCI bus and an ATA (AT Attachment) bus216.

A 3D graphics processing unit 220 and a video encoder 222 form a videoprocessing pipeline for high speed and high resolution graphicsprocessing. Data is carried from the graphics processing unit 220 to thevideo encoder 222 via a digital video bus (not shown). An audioprocessing unit 224 and an audio codec (coder/decoder) 226 form acorresponding audio processing pipeline with high fidelity and stereoprocessing. Audio data is carried between the audio processing unit 224and the audio codec 226 via a communication link (not shown). The videoand audio processing pipelines output data to an AN (audio/video) port228 for transmission to the television or other display. In theillustrated implementation, the video and audio processing components220-228 are mounted on the module 214.

Also implemented on the module 214 are a USB host controller 230 and anetwork interface 232. The USB host controller 230 is coupled to the CPU200 and the memory controller 202 via a bus (e.g., PCI bus) and servesas host for the peripheral controllers 104(1)-104(4). The networkinterface 232 provides access to a network (e.g., LAN, Internet, etc.)and may be any of a wide variety of various wired or wireless interfacecomponents including an Ethernet card, a modem, a Bluetooth module, acable modem, and the like.

The game console 102 has two dual controller support subassemblies240(1) and 240(2), with each subassembly supporting up to two of thegame controllers 104(1)-104(4). A front panel I/O subassembly 242supports the functionality of the control buttons 116, as well as anyLEDs (light emitting diodes) or other indicators exposed on the outersurface of the game console. A controller wireless interface 244 is alsoprovided to support wireless communication with the game controllers.The wireless interface 244 may use any one of many technologies,including IR, Bluetooth, and RF technologies. The subassemblies 240(1),240(2), and 242 and controller wireless interface 244 are coupled to themodule 214, and particularly the USB controller 230, via one or morecable assemblies 246.

Eight memory units 140(1)-140(8) are illustrated as being connectable tothe four controllers 104(1)-104(4), i.e., two memory units for eachcontroller. Each memory unit 140 offers additional storage on whichgames, game parameters, and other data may be stored. When inserted intoa controller, the memory unit 140 can be accessed by the memorycontroller 202. It is noted that, in other implementations, the memoryunits 140 may be inserted into compatible slots in the game console 102.

A system power supply module 250 provides power to the components of thegaming system 100 and to the game controllers 104 when operating in thewired mode. A fan 252 cools the circuitry within the game console 102.

The game console 102 may further implement a cryptography engine toperform common cryptographic functions, such as encryption, decryption,authentication, digital signing, hashing, and the like. The cryptographyengine may be implemented as part of the CPU 200, or in software storedin memory (e.g., ROM 204, hard disk drive 208) that executes on the CPU,so that the CPU is configured to perform the cryptographic functions.

Game data 260 generated during game play is stored in memory at the gameconsole, such as in hard disk drive 208 (although other storage may beused). The type and quantity of game data is game specific and can beessentially anything that a game developer would like to track. Examplesof game data might include skid marks or fuel level in a racing game,weapon selection or life count in shooter games, and so forth.

The game data 260 is stored in relation to a controller ID 262. When aplayer switches between wired and wireless mode of operation, thecontroller passes in the controller ID and the console tries to match itwith any controller IDs stored on hard disk drive 208 in relation tosaved game data 260. If a match is found, the game console reassociatesthe corresponding game data with the controller.

FIG. 3 shows functional components of the game controller 104 in moredetail. The controller 104 has a central processing unit (CPU) 302 andmemory, including ROM 304, RAM 306 and EEPROM 308. In the illustratedimplementation, the CPU 302, ROM 304, and RAM 306 are integrated onto acommon module 310 and are interconnected via one or more bussingstructures. EEPROM 308 is separate from, but interfaced with, the module310.

The game controller 104 further includes motor drives 312 to providetactile feedback to the player and a PWM (pulse width modulation) output314 to provide the control signals for the motor drives. Player actionsreceived via variable-input actuators 316 (e.g., thumbsticks 132 andtriggers 138) are converted by analog-to-digital converter (ADC) 318 toprovide player input to the CPU 302. ADC 318 can be implemented, forexample, as an eight channel 10-bit or 12-bit converter. Other playeractions received through dual-state switches 320 (e.g., buttons 136 andD-pad 134) are passed through I/O 322 to CPU 302.

As noted above, the game controller 104 supports both wired operationand wireless operation. The game controller 104 includes a USB interface330 and USB connector 332 for the wired mode of operation. In theillustrated implementation, the game controller 104 is configured tosupport wireless operation using RF (radio frequency) technologies. AnRF module 334 (e.g., 2.4 GHz RF module), a radio baseband unit 336, andDMA (Direct Memory Access) channels unit 338 support the wireless modeof operation. In other implementations, the game controller can bedesigned to utilize alternative wireless technologies, such as IR(infrared), Bluetooth, UWB (UltraWide Band), and so forth.

The game controller 104 is equipped with its own power source to enablewireless operation. In the illustrated implementation, a battery 350supplies power to the electronic modules and components of the gamecontroller 104. A battery power controller 352 monitors the battery 350and detects when power is low. Upon detection, a low power condition canbe conveyed to the player (e.g., illumination of a light indicator onthe controller or display of a warning while the game is being played).The player can then switch to wired mode by plugging in the cable to thegame console. The battery power controller 352 also monitors chargingbehavior of the battery, such as how long it takes to charge anddetection of when it is fully charged. In wired mode, the gamecontroller 104 receives power from the game console. A battery chargingcircuit 354 recharges battery 350 while the controller is connected viathe cable. A reset circuit 358 and power on reset circuitry 360 allowthe game controller to be reset during operation or when power isinitially provided. A power management module 356 generates voltages forthe different components on the module 310 and dynamically manages powerconsumption of those components.

As part of the power management, the console maintains battery life dataincluding, for example, the total life expectancy of the battery, howmuch power has been drawn during wireless play, and the amount of timeleft before the battery supply is effectively depleted. The controllersends the battery life data to the console and the console can utilizethe data to instruct the player when to switch from wireless play towired play so that the controller can be recharged. For instance, theconsole may flash a warning light on the console or present a pop upmessage on the display to inform the player of low battery conditionsand suggest that the player plug the controller cable into the consolefor continued play.

A voice module 370 may be optionally included in the game controller 104to receive oral commands or speech from the player. The game controller104 also has timing components to provide timing functionality,including a general purpose timer 374 (e.g., 16-bit timer), a watchdogtimer 376, an oscillator 378, and a crystal 380.

One or more identifiers 390 are stored in EEPROM 308. In particular, theEEPROM 308 stores a session ID that is used to facilitate switchingbetween wired mode and wireless mode without causing permanentdisruption to game play. The session ID includes an active game ID thatidentifies the current virtual slot being used by the controller and adevice ID that identifies the controller itself. After a mode transitionoccurs (i.e., from wired mode to wireless mode, or vice versa) and a newconnection is established, the game controller 104 passes the session IDto the game console. The game console extracts the controller ID portionand looks to match it with any controller ID stored on the game consolein relation to saved game data. If a match is found, the game consolereassociates the corresponding game data with the controller. In thismanner, game play can continue uninterrupted during transition fromwireless mode to wired mode.

Mode Switching Operation

FIG. 4 shows a process 400 for switching a game controller from awireless mode of operation to a wired mode of operation. The process 400is illustrated as a collection of blocks in a logical flow graph, whichrepresent a sequence of operations that can be implemented in hardware,software, or a combination thereof. In the context of software, theblocks represent computer instructions that, when executed by one ormore processors, perform the recited operations.

The process includes operations performed by both the game controllerand a host gaming system. For discussion purposes, the process 400 isdescribed with reference to the controller 104 and game console 102described above with respect to FIGS. 1-3. It is noted that the process400 may be implemented by other types of controllers that are designedfor both wired and wireless communication, and for other types of gamingsystems, such as PCs.

At block 402, the game controller 104 is operated in a wireless mode. Inthis mode, the game controller 104 draws power from the battery 350 andtransmits user commands via the RF module 334 to the game console 104.During operation in wireless mode, the game controller 104 monitors forconditions that might suggest a switch in operation from wireless modeto wired mode (block 404). One example of a condition is where batterypower controller 352 detects that battery 350 is running low. Anotherexample condition occurs when a number of packets are lost or otherwisecontain incorrect data during the wireless exchange between thecontroller 104 and console 102, perhaps due to a noisy RF environment orother interference. If no such conditions arise (i.e., the “No” branchfrom block 404), the game controller remains in wireless mode.

When a transition condition is detected (i.e., the “Yes” branch fromblock 404), the game controller 104 determines whether the session ID issaved in memory resident at the controller (block 406). The session IDincludes an active game ID that identifies the current virtual slotbeing used by the controller and a device ID that identifies thecontroller. If the session ID is not saved (i.e., the “No” branch fromblock 406), the game controller 104 saves the session ID in nonvolatilememory resident at the controller, such as EEPROM 308 (block 408).

Once the session ID is saved on the controller, the host (e.g., gameconsole 102) determines whether the cable 106 is connected to one of thephysical slots 114 (block 410). If not (i.e., the “No” branch from block410), the game controller 104 continues to be operated in wireless mode.It may continue in this mode until the cable is attached or the batteryceases to supply sufficient power. When the cable is connected (i.e.,the “Yes” branch from block 410), the game console 102 performs USBenumeration to establish a USB connection via the cable 106 (block 412).

Once the connection is established, the game controller 104 retrievesthe session ID from nonvolatile memory and sends it to the game console(block 414). The game console uses the session ID to locate any savedgame data and reassociates that game data with the controller (block416). More particularly, as game data 260 is generated during play, itis stored at the game console 102 in relation to a controller ID 262associated with the game controller. The controller ID may be unique tothe controller itself or it may represent a connection slot currentlybeing used by the controller. When a mode transition occurs (i.e., fromwired mode to wireless mode, or vice versa), the game console uses thecontroller ID from the session ID received from the newly attached gamecontroller and looks to match it with any controller ID stored on thegame console. If a match is found, the game console reassociates thegame data for the active game identified in the session ID with thecontroller. In this manner, game play can continue uninterrupted duringtransition from wireless mode to wired mode. At block 418, the gamecontroller 104 continues in wired mode.

FIG. 5 shows a process 500 for switching a game controller from a wiredmode of operation to a wireless mode of operation. The process includesoperations performed by both the game controller and a host gamingsystem, and once again will be described with reference to thecontroller 104 and game console 102 described above with respect toFIGS. 1-3.

At block 502, the host (e.g., game console 102) performs USB enumerationto establish a USB connection with the game controller 104 via the cable106. Once a connection is established, the game controller 104 isoperated in the wired mode (block 504). At block 506, the gamecontroller 104 determines whether the session ID is saved in controllermemory. If the session ID is not saved (i.e., the “No” branch from block506), the game controller 104 saves the session ID in nonvolatilememory, such as EEPROM 308 (block 508).

Once the session ID is saved on the controller, the game controller 104determines whether the cable 106 remains connected to one of thephysical slots 114 of the game console (block 510). If it is stillconnected (i.e., the “Yes” branch from block 510), the game controller104 continues to be operated in wired mode. When the cable isdisconnected (i.e., the “No” branch from block 510), the game controller104 performs a discovery process to become part of a wireless networkand establish a wireless connection between the game controller and thegame console (block 512).

Once a wireless connection is established, the game controller 104retrieves the session ID from its nonvolatile memory and sends it to thegame console so that any on-going game data can be reassociated with thecontroller (block 514). At block 516, the game controller 104 continuesto operate in wireless mode.

The described mode switching processes 400 and 500 also accommodate thesituation where a new player joins a game. A new player can connecthis/her game controller to an available physical slot for wiredoperation or begin operation directly in wireless mode using thediscovery process. The game console first attempts to match the sessionID with a current list of session IDs. When a match is not found, thegame console associate that device ID with the physical or virtual slotthrough which it communicates. It can then begin storing game data inrelation to that device ID.

Conclusion

The above-described game controller facilitates both wired and wirelessoperation and the ability to switch between wired and wireless operationwithout interrupting an ongoing game. Although the invention has beendescribed in language specific to structural features and/ormethodological acts, it is to be understood that the invention definedin the appended claims is not necessarily limited to the specificfeatures or acts described. Rather, the specific features and acts aredisclosed as exemplary forms of implementing the claimed invention.

1. A method implemented by a host game system comprising: operating agame controller in a wireless mode of operation; receiving, from thegame controller, an indication to switch between the wireless mode ofoperation and a wired mode of operation; and transitioning from thewireless mode of operation to the wired mode of operation.
 2. The methodas recited in claim 1, wherein the indication is based on detecting alow power condition.
 3. The method as recited in claim 1, wherein theindication is based on detecting a loss of data packets transmittedduring the wireless mode of operation.
 4. The method as recited in claim1, wherein the indication is based on detecting that data packetstransmitted during the wireless mode of operation contain incorrectdata.
 5. The method as recited in claim 1, wherein the indication isbased on monitoring power supply data associated with a game controllerpower supply.
 6. The method as recited in claim 5, wherein the powersupply data includes an amount of time left before the game controllerpower supply is depleted.
 7. The method as recited in claim 5, whereinthe power supply data includes a total life expectancy of the powersupply and an amount of power used by the game controller during thewireless mode of operation.
 8. The method as recited in claim 1, furthercomprising conveying a low power indication to a player using the gamecontroller.
 9. A method implemented by a game controller comprising:communicating with a host gaming system in a wireless mode of operation;detecting a condition that suggests switching from the wireless mode ofoperation to a wired mode of operation; conveying an indication toswitch to the wired mode of operation; and transitioning from thewireless mode of operation to the wired mode of operation.
 10. Themethod as recited in claim 9, wherein detecting the condition includesdetermining that a power supply is low.
 11. The method as recited inclaim 9, wherein detecting the condition includes determining a loss ofpackets transmitted during the wireless mode of operation.
 12. Themethod as recited in claim 9, wherein detecting the condition includesdetermining that packets transmitted during the wireless mode ofoperation contain incorrect data.
 13. The method as recited in claim 9,further comprising monitoring power supply data associated with a gamecontroller power supply to detect the condition.
 14. The method asrecited in claim 13, wherein the power supply data includes a total lifeexpectancy of the game controller power supply.
 15. The method asrecited in claim 13, wherein the power supply data includes an amount ofpower used by the game controller during the wireless mode of operationand an amount of time left before the game controller power supply isdepleted.
 16. A video game controller comprising: a processor; a memorycoupled to the processor; a first module configured to supportcommunication during a wired mode of operation; a second moduleconfigured to support communication during a wireless mode of operation;a battery configured to supply power to the processor, the memory, andthe second module when the video game controller is operating in thewireless mode of operation; a battery power controller configured tomonitor the battery and detect conditions that suggest switching fromthe wireless mode of operation to a wired mode of operation; and one ormore modules configured to transition operation of the video gamecontroller between the wireless mode of operation and the wired mode ofoperation.
 17. The video game controller as recited in claim 16, thebattery power controller being further configured to send battery lifedata to a host gaming system.
 18. The video game controller as recitedin claim 17, wherein the battery life data includes an amount of powerused by the video game controller during the wireless mode of operation.19. The video game controller as recited in claim 17, wherein thebattery life data includes a total life expectancy of the battery and anamount of time left before the battery is depleted.
 20. The video gamecontroller as recited in claim 16, wherein the transition includespassing an identity to a host game system for use in locating game dataassociated with the video game controller.